#include <windows.h>
#include <windowsx.h>
#include "dialog.h"

// Procedura dialogowa
BOOL CALLBACK DlgTrybProc( HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam )
{
    switch( Msg )
    {
    case WM_INITDIALOG:  
    {
         if (sym->getTrybSymulacji() ==  0)
          {
               HWND hRW = GetDlgItem(hwnd, IDRB_RECZNY);
               SendMessage(hRW, BM_SETCHECK, BST_CHECKED, 0);
          }
          else if (sym->getTrybSymulacji() == 1)
          {
               HWND hRW = GetDlgItem(hwnd, IDRB_AUTO);
               SendMessage(hRW, BM_SETCHECK, BST_CHECKED, 0);
          }
          
          HWND hCzasKroku = GetDlgItem(hwnd, IDET_TRYB_CZAS);
          SetWindowText( hCzasKroku,   sym->intToChar(sym->getCzasKroku()));

    }
    break;
    case WM_COMMAND:
        {
            // reakcja na przyciski
            switch( LOWORD( wParam ) )
            {  
            case IDRB_RECZNY:
            {
                  HWND hRW = GetDlgItem(hwnd, IDRB_RECZNY);
                  SendMessage(hRW, BM_SETCHECK, BST_CHECKED, 0);
                  hRW = GetDlgItem(hwnd, IDRB_AUTO);
                  SendMessage(hRW, BM_SETCHECK, BST_UNCHECKED, 0);

            } 
            break;
            case IDRB_AUTO:
            {
                  HWND hRW = GetDlgItem(hwnd, IDRB_AUTO);
                  SendMessage(hRW, BM_SETCHECK, BST_CHECKED, 0);
                  hRW = GetDlgItem(hwnd, IDRB_RECZNY);
                  SendMessage(hRW, BM_SETCHECK, BST_UNCHECKED, 0);
            }  
     
            break;


            case IDOK: 
            {
                 HWND hRW = GetDlgItem(hwnd, IDRB_RECZNY);
                 if ( SendMessage(hRW, BM_GETCHECK, 0, 0) == 1) sym->setTrybSymulacji( 0 );
                 hRW = GetDlgItem(hwnd, IDRB_AUTO);
                 if ( SendMessage(hRW, BM_GETCHECK, 0, 0) == 1) sym->setTrybSymulacji( 1 );
                 
                 HWND hCzasKroku = GetDlgItem(hwnd, IDET_TRYB_CZAS);
                 char * tmp = new char[10];
                 GetWindowText(hCzasKroku, tmp, 10);
                 sym->setCzasKroku(atoi(tmp));
                 
                 EndDialog( hwnd, IDOK ); 
            }
                 break;
            case IDCANCEL: EndDialog( hwnd, IDCANCEL ); break;
            }
        }
        break;
       
        default: return FALSE;
    } 
    return TRUE;
}
